#ifndef MATRIX_H
#define MATRIX_H

#include <iostream>
#include <cassert>
#include <cstdlib>

class Matrix
{
protected:
	float* m;
	int width;
	int height;


public:
	Matrix(void);
	Matrix(int pWidth, int pHeight);
	Matrix(const Matrix& value);
	~Matrix(void);

	void operator=(const Matrix& source);

	void setValue(int x, int y, float value);
	float getValue(int x, int y) const;
	void setWidth(int pWidth);
	void setHeight(int pHeight);
	void setDimensions(int w, int h);
	int getWidth() const; 
	int getHeight() const;
	void add(const Matrix& other);
	void multiply(const Matrix& other);
	void transpose();
	
// ------methodes suplementaires----------
	void setIdentity();
	void copy(float* mAux);

};
#endif